Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis

نویسندگان

  • Jeffrey Dean
  • David Grove
  • Craig Chambers
چکیده

Optimizing compilers for object-oriented languages apply static class analysis and other techniques to try to deduce precise information about the possible classes of the receivers of messages; if successful, dynamicallydispatched messages can be replaced with direct procedure calls and potentially further optimized through inline-expansion. By examining the complete inheritance graph of a program, which we call class hierarchy analysis, the compiler can improve the quality of static class information and thereby improve run-time performance. In this paper we present class hierarchy analysis and describe techniques for implementing this analysis effectively in both staticallyand dynamically-typed languages and also in the presence of multi-methods. We also discuss how class hierarchy analysis can be supported in an interactive programming environment and, to some extent, in the presence of separate compilation. Finally, we assess the bottom-line performance improvement due to class hierarchy analysis alone and in combination with two other “competing” optimizations, profileguided receiver class prediction and method specialization.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Whole-Program Optimization of Object-Oriented Languages

Whole-Program Optimization of Object-Oriented Languages by Jeffrey Adgate Dean Chairperson of the Supervisory Committee: Professor Craig Chambers Department of Computer Science and Engineering This dissertation examines the use of whole-program optimization as a way of improving the performance of object-oriented programming languages. Although object-oriented programming conveys a number of so...

متن کامل

Using C++ Class Libraries from an Interpreted Language

The use of object-oriented programming, and C++ in particular, to build reusable class libraries has proven to be a very successful programming technique. However, the flexible composition of class libraries to create application programs has received little focus. In this paper we present a tool, that automatically maps a C++ class hierarchy to an equivalent hierarchy in an interpreted languag...

متن کامل

Restructuring optimisations for object-oriented mobile applications

Writing applications using object-oriented frameworks usually causes additional static and dynamic overhead to programs. When developing programs for constrained devices, this may lead to developers forgetting their good manners of using proper abstractions, as the constrained environment is used as an excuse of writing case-specific code. We describe class-hierarchy restructuring algorithms fo...

متن کامل

A Class Hierarchy for Building Stream - Oriented

This paper describes the object-oriented design and implementation of a family of stream-oriented le systems under UNIX and under an object-oriented operating system called Choices. A class hierarchy provides an object-oriented taxonomy of the algorithms and data structures used in the design of this family. The family includes the System V le system, the 4.2 BSD le system, and the MS-DOS le sy...

متن کامل

A Novel Obfuscation: Class Hierarchy Flattening

This paper presents class hierarchy flattening, a novel obfuscation technique for programs written in object-oriented, managed programming languages. Class hierarchy flattening strives for maximally removing the inheritance relations from object-oriented programs, thus hiding the overall design of the program from reverse engineers and other attackers. We evaluate the potential of class hierarc...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995